﻿using UnityEngine;
using System.Collections;

public class Movie1 : MonoBehaviour
{
    //电影纹理
    public MovieTexture movTexture;
    public MeshRenderer meshRenderer;
    //是否计时
    private bool isTime;
    public AudioSource audioSource;
    //播放一次的时长
    private float playTimeOnce;
    //已播放次数
    private int NowPlayTime;
    //设置循环
    public bool isLoop;
    //限制播放次数
    public int allPlayTime;
    //声音大小
    public float moiveSound;
    void Start()
    {
        //设置当前对象的主纹理为电影纹理
        SetMoive();
        //设置电影纹理播放模式为循环
        SetSound();
        SetLoop(isLoop);
        
    }
    void SetMoive()
    {
        meshRenderer.material.mainTexture = movTexture;
    }
    //设置音量
    void SetSound()
    {
        if (moiveSound > 1)
            moiveSound = 1;
        else if (moiveSound < 0)
            moiveSound = 0;
        audioSource.volume = moiveSound;

    }
    //设置循环 
    void SetLoop(bool vaule)
    {
        movTexture.loop = vaule;
        audioSource.loop = vaule;
    }

    void Update()
    {
        if(playMoveNow)
        {
            PlayMoive();
            playMoveNow = false;
        }

        //检测可以播放的次数 如果大于0 就有限制循环次数 小于0则没有限制
        if (allPlayTime > 0)
        {
            if (NowPlayTime == allPlayTime)
            {
                StopMoive();

                SetLoop(false);
            }
        }
        //检测播放时间
        if (isTime)
        {
            //如果播放时间大于影片时常
            if (playTimeOnce >= movTexture.duration)
            {
                //播放次数加1
                NowPlayTime += 1;
                //播放时长重置
                playTimeOnce = 0f;
            }
            playTimeOnce += Time.deltaTime;
        }
    }

    public bool playMoveNow;

    public void PlayMoive()
    {

        //视频声音播放 和播放开始计时
        if (!movTexture.isPlaying)
        {

            movTexture.Play();
            audioSource.Play();
            isTime = true;
        }
    }
    public void PauseMoive()
    {
        //暂停视频声音和计时
        movTexture.Pause();
        audioSource.Pause();
        isTime = false;
    }
    public void StopMoive()
    {
        //停止视频声音和计时 计时归零
        movTexture.Stop();
        audioSource.Stop();
        isTime = false;
        playTimeOnce = 0f;
    }
    //void OnGUI()
    //{
    //    if (GUILayout.Button("播放/继续"))
    //    {
    //        //播放/继续播放视频
    //        if (!movTexture.isPlaying)
    //        {

    //            movTexture.Play();
    //            audioSource.Play();
    //            isTime = true;
    //        }

    //    }

    //    if (GUILayout.Button("暂停播放"))
    //    {
    //        //暂停播放
    //        movTexture.Pause();
    //        audioSource.Pause();
    //        isTime = false;
    //    }

    //    if (GUILayout.Button("停止播放"))
    //    {
    //        //停止播放
    //        movTexture.Stop();
    //        audioSource.Stop();
    //        isTime = false;
    //        playTimeOnce = 0f;
    //    }
    //}
}
